home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / acpi / acpixf.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  9.7 KB  |  344 lines

  1.  
  2. /******************************************************************************
  3.  *
  4.  * Name: acpixf.h - External interfaces to the ACPI subsystem
  5.  *
  6.  *****************************************************************************/
  7.  
  8. /*
  9.  * Copyright (C) 2000 - 2008, Intel Corp.
  10.  * All rights reserved.
  11.  *
  12.  * Redistribution and use in source and binary forms, with or without
  13.  * modification, are permitted provided that the following conditions
  14.  * are met:
  15.  * 1. Redistributions of source code must retain the above copyright
  16.  *    notice, this list of conditions, and the following disclaimer,
  17.  *    without modification.
  18.  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
  19.  *    substantially similar to the "NO WARRANTY" disclaimer below
  20.  *    ("Disclaimer") and any redistribution must be conditioned upon
  21.  *    including a substantially similar Disclaimer requirement for further
  22.  *    binary redistribution.
  23.  * 3. Neither the names of the above-listed copyright holders nor the names
  24.  *    of any contributors may be used to endorse or promote products derived
  25.  *    from this software without specific prior written permission.
  26.  *
  27.  * Alternatively, this software may be distributed under the terms of the
  28.  * GNU General Public License ("GPL") version 2 as published by the Free
  29.  * Software Foundation.
  30.  *
  31.  * NO WARRANTY
  32.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  33.  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  34.  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
  35.  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  36.  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  37.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  38.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  39.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  40.  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
  41.  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  42.  * POSSIBILITY OF SUCH DAMAGES.
  43.  */
  44.  
  45. #ifndef __ACXFACE_H__
  46. #define __ACXFACE_H__
  47.  
  48. #include "actypes.h"
  49. #include "actbl.h"
  50.  
  51. /*
  52.  * Global interfaces
  53.  */
  54. acpi_status
  55. acpi_initialize_tables(struct acpi_table_desc *initial_storage,
  56.                u32 initial_table_count, u8 allow_resize);
  57.  
  58. acpi_status __init acpi_initialize_subsystem(void);
  59.  
  60. acpi_status acpi_enable_subsystem(u32 flags);
  61.  
  62. acpi_status acpi_initialize_objects(u32 flags);
  63.  
  64. acpi_status acpi_terminate(void);
  65.  
  66. #ifdef ACPI_FUTURE_USAGE
  67. acpi_status acpi_subsystem_status(void);
  68. #endif
  69.  
  70. acpi_status acpi_enable(void);
  71.  
  72. acpi_status acpi_disable(void);
  73.  
  74. #ifdef ACPI_FUTURE_USAGE
  75. acpi_status acpi_get_system_info(struct acpi_buffer *ret_buffer);
  76. #endif
  77.  
  78. const char *acpi_format_exception(acpi_status exception);
  79.  
  80. acpi_status acpi_purge_cached_objects(void);
  81.  
  82. #ifdef ACPI_FUTURE_USAGE
  83. acpi_status
  84. acpi_install_initialization_handler(acpi_init_handler handler, u32 function);
  85. #endif
  86.  
  87. /*
  88.  * ACPI Memory management
  89.  */
  90. void *acpi_allocate(u32 size);
  91.  
  92. void *acpi_callocate(u32 size);
  93.  
  94. void acpi_free(void *address);
  95.  
  96. /*
  97.  * ACPI table manipulation interfaces
  98.  */
  99. acpi_status acpi_reallocate_root_table(void);
  100.  
  101. acpi_status acpi_find_root_pointer(acpi_size *rsdp_address);
  102.  
  103. acpi_status acpi_load_tables(void);
  104.  
  105. acpi_status acpi_load_table(struct acpi_table_header *table_ptr);
  106.  
  107. acpi_status acpi_unload_table_id(acpi_owner_id id);
  108.  
  109. acpi_status
  110. acpi_get_table_header(acpi_string signature,
  111.               u32 instance,
  112.               struct acpi_table_header *out_table_header);
  113.  
  114. acpi_status
  115. acpi_get_table(acpi_string signature,
  116.            u32 instance, struct acpi_table_header **out_table);
  117.  
  118. acpi_status
  119. acpi_get_table_by_index(u32 table_index,
  120.             struct acpi_table_header **out_table);
  121.  
  122. acpi_status
  123. acpi_install_table_handler(acpi_tbl_handler handler, void *context);
  124.  
  125. acpi_status acpi_remove_table_handler(acpi_tbl_handler handler);
  126.  
  127. /*
  128.  * Namespace and name interfaces
  129.  */
  130. acpi_status
  131. acpi_walk_namespace(acpi_object_type type,
  132.             acpi_handle start_object,
  133.             u32 max_depth,
  134.             acpi_walk_callback user_function,
  135.             void *context, void **return_value);
  136.  
  137. acpi_status
  138. acpi_get_devices(const char *HID,
  139.          acpi_walk_callback user_function,
  140.          void *context, void **return_value);
  141.  
  142. acpi_status
  143. acpi_get_name(acpi_handle handle,
  144.           u32 name_type, struct acpi_buffer *ret_path_ptr);
  145.  
  146. acpi_status
  147. acpi_get_handle(acpi_handle parent,
  148.         acpi_string pathname, acpi_handle * ret_handle);
  149.  
  150. acpi_status
  151. acpi_attach_data(acpi_handle obj_handle,
  152.          acpi_object_handler handler, void *data);
  153.  
  154. acpi_status
  155. acpi_detach_data(acpi_handle obj_handle, acpi_object_handler handler);
  156.  
  157. acpi_status
  158. acpi_get_data(acpi_handle obj_handle, acpi_object_handler handler, void **data);
  159.  
  160. acpi_status
  161. acpi_debug_trace(char *name, u32 debug_level, u32 debug_layer, u32 flags);
  162.  
  163. /*
  164.  * Object manipulation and enumeration
  165.  */
  166. acpi_status
  167. acpi_evaluate_object(acpi_handle object,
  168.              acpi_string pathname,
  169.              struct acpi_object_list *parameter_objects,
  170.              struct acpi_buffer *return_object_buffer);
  171.  
  172. #ifdef ACPI_FUTURE_USAGE
  173. acpi_status
  174. acpi_evaluate_object_typed(acpi_handle object,
  175.                acpi_string pathname,
  176.                struct acpi_object_list *external_params,
  177.                struct acpi_buffer *return_buffer,
  178.                acpi_object_type return_type);
  179. #endif
  180.  
  181. acpi_status
  182. acpi_get_object_info(acpi_handle handle, struct acpi_buffer *return_buffer);
  183.  
  184. acpi_status
  185. acpi_get_next_object(acpi_object_type type,
  186.              acpi_handle parent,
  187.              acpi_handle child, acpi_handle * out_handle);
  188.  
  189. acpi_status acpi_get_type(acpi_handle object, acpi_object_type * out_type);
  190.  
  191. acpi_status acpi_get_id(acpi_handle object, acpi_owner_id * out_type);
  192.  
  193. acpi_status acpi_get_parent(acpi_handle object, acpi_handle * out_handle);
  194.  
  195. /*
  196.  * Event handler interfaces
  197.  */
  198. acpi_status
  199. acpi_install_fixed_event_handler(u32 acpi_event,
  200.                  acpi_event_handler handler, void *context);
  201.  
  202. acpi_status
  203. acpi_remove_fixed_event_handler(u32 acpi_event, acpi_event_handler handler);
  204.  
  205. acpi_status
  206. acpi_install_notify_handler(acpi_handle device,
  207.                 u32 handler_type,
  208.                 acpi_notify_handler handler, void *context);
  209.  
  210. acpi_status
  211. acpi_remove_notify_handler(acpi_handle device,
  212.                u32 handler_type, acpi_notify_handler handler);
  213.  
  214. acpi_status
  215. acpi_install_address_space_handler(acpi_handle device,
  216.                    acpi_adr_space_type space_id,
  217.                    acpi_adr_space_handler handler,
  218.                    acpi_adr_space_setup setup, void *context);
  219.  
  220. acpi_status
  221. acpi_remove_address_space_handler(acpi_handle device,
  222.                   acpi_adr_space_type space_id,
  223.                   acpi_adr_space_handler handler);
  224.  
  225. acpi_status
  226. acpi_install_gpe_handler(acpi_handle gpe_device,
  227.              u32 gpe_number,
  228.              u32 type, acpi_event_handler address, void *context);
  229.  
  230. #ifdef ACPI_FUTURE_USAGE
  231. acpi_status acpi_install_exception_handler(acpi_exception_handler handler);
  232. #endif
  233.  
  234. /*
  235.  * Event interfaces
  236.  */
  237. acpi_status acpi_acquire_global_lock(u16 timeout, u32 * handle);
  238.  
  239. acpi_status acpi_release_global_lock(u32 handle);
  240.  
  241. acpi_status
  242. acpi_remove_gpe_handler(acpi_handle gpe_device,
  243.             u32 gpe_number, acpi_event_handler address);
  244.  
  245. acpi_status acpi_enable_event(u32 event, u32 flags);
  246.  
  247. acpi_status acpi_disable_event(u32 event, u32 flags);
  248.  
  249. acpi_status acpi_clear_event(u32 event);
  250.  
  251. acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status);
  252.  
  253. acpi_status acpi_set_gpe_type(acpi_handle gpe_device, u32 gpe_number, u8 type);
  254.  
  255. acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number);
  256.  
  257. acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number);
  258.  
  259. acpi_status acpi_clear_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags);
  260.  
  261. acpi_status
  262. acpi_get_gpe_status(acpi_handle gpe_device,
  263.             u32 gpe_number,
  264.             u32 flags, acpi_event_status * event_status);
  265.  
  266. acpi_status
  267. acpi_install_gpe_block(acpi_handle gpe_device,
  268.                struct acpi_generic_address *gpe_block_address,
  269.                u32 register_count, u32 interrupt_number);
  270.  
  271. acpi_status acpi_remove_gpe_block(acpi_handle gpe_device);
  272.  
  273. /*
  274.  * Resource interfaces
  275.  */
  276. typedef
  277. acpi_status(*acpi_walk_resource_callback) (struct acpi_resource * resource,
  278.                        void *context);
  279.  
  280. acpi_status
  281. acpi_get_vendor_resource(acpi_handle device_handle,
  282.              char *name,
  283.              struct acpi_vendor_uuid *uuid,
  284.              struct acpi_buffer *ret_buffer);
  285.  
  286. acpi_status
  287. acpi_get_current_resources(acpi_handle device_handle,
  288.                struct acpi_buffer *ret_buffer);
  289.  
  290. #ifdef ACPI_FUTURE_USAGE
  291. acpi_status
  292. acpi_get_possible_resources(acpi_handle device_handle,
  293.                 struct acpi_buffer *ret_buffer);
  294. #endif
  295.  
  296. acpi_status
  297. acpi_walk_resources(acpi_handle device_handle,
  298.             char *name,
  299.             acpi_walk_resource_callback user_function, void *context);
  300.  
  301. acpi_status
  302. acpi_set_current_resources(acpi_handle device_handle,
  303.                struct acpi_buffer *in_buffer);
  304.  
  305. acpi_status
  306. acpi_get_irq_routing_table(acpi_handle bus_device_handle,
  307.                struct acpi_buffer *ret_buffer);
  308.  
  309. acpi_status
  310. acpi_resource_to_address64(struct acpi_resource *resource,
  311.                struct acpi_resource_address64 *out);
  312.  
  313. /*
  314.  * Hardware (ACPI device) interfaces
  315.  */
  316. acpi_status acpi_get_register(u32 register_id, u32 * return_value);
  317.  
  318. acpi_status acpi_get_register_unlocked(u32 register_id, u32 *return_value);
  319.  
  320. acpi_status acpi_set_register(u32 register_id, u32 value);
  321.  
  322. acpi_status
  323. acpi_set_firmware_waking_vector(acpi_physical_address physical_address);
  324.  
  325. #ifdef ACPI_FUTURE_USAGE
  326. acpi_status
  327. acpi_get_firmware_waking_vector(acpi_physical_address * physical_address);
  328. #endif
  329.  
  330. acpi_status
  331. acpi_get_sleep_type_data(u8 sleep_state, u8 * slp_typ_a, u8 * slp_typ_b);
  332.  
  333. acpi_status acpi_enter_sleep_state_prep(u8 sleep_state);
  334.  
  335. acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state);
  336.  
  337. acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void);
  338.  
  339. acpi_status acpi_leave_sleep_state_prep(u8 sleep_state);
  340.  
  341. acpi_status acpi_leave_sleep_state(u8 sleep_state);
  342.  
  343. #endif                /* __ACXFACE_H__ */
  344.